home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 25
/
Cream of the Crop 25.iso
/
image
/
multi207.zip
/
MSCOPE.DOC
< prev
next >
Wrap
Text File
|
1997-03-21
|
47KB
|
887 lines
Multiscope, 2.07
StarCom
Matt Roberts
3 Cedar St., # 2
Montpelier, Vt 05602-3006
(802)229-1171
Multiscope puts lines on your screen in such a way as to create interesting
designs. It gets its name from the fact that it'll work on a wide variety of
systems, though special emphasis has been placed on compatibility with
monochrome Hercules (tm) and clone graphics cards. That's because I've had a
lot of Hercules systems in the last few years, and haven't been able to find
screen display programs I liked that supported my systems.
Source included is: Tandy 100 BASIC for the Tandy 102 kaleidoscope; Commodore
64 BASIC 2 for the Commodore 64 kaleidoscope; ASIC 5.00 for KALEIDOS.EXE;
Color BASIC 1.3 for the Color Computer 2 kaleidoscope; and QuickBASIC 4.5 for
SKAL.EXE .
About Money and Other Fun Stuff
If you find Multiscope useful, a contribution of $11.13, or any amount, would
be greatly appreciated. Please feel free to make backup copies and distribute
them to others without restriction. Payment is entirely voluntary on the part
of the user, which is why I call it a contribution. The theory is that the
user of software knows best the value of the software he or she receives. The
advantage of this method is that costs can be kept low, since there are no
packaging costs, advertising costs, etc. You get to "try before you buy",
with no obligation on your part if you don't care for the program.
Barter is also acceptable, if you feel you don't have any cash you want to
part with right now. If you have something you want to trade, I'm always
interested. Just contact me at the address at the beginning of this document.
Those sending a contribution of $10 or more (or the equivalent in barter) will
receive the latest version of Multiscope.
Credits
The comments and suggestions of Nancy Liedlich and Darrell Becker have been
very helpful. In addition, they've patiently endured various versions of
monochrome "kaleidoscopes" designed for various systems. Nancy also helped
with some suggestions for the C64 kaleidoscope not long ago. Thanks, folks!
Matt Brittenham noticed that the screen periodically seemed to freeze for
quite a while. I'd kind of noticed it, but never really gave it much thought.
His comments spurred me to solve that problem. Thanks, Matt!
A few years ago, Cliff Farley sent me (among other spiffy routines) an INT86
routine for turning off the cursor. I've used it several times, and it's used
here in the MDA display of KALEIDOS. I've saved a nice bit of time not having
to look up the BIOS call myself; it was very convenient to just "cut and
paste" from his code. Thanks, Cliff!
ASIC, by 80/20 Software, is a shareware BASIC compiler I use a lot, and I
highly recommend it. The cost is only $25 ($20 for the compiler, and $5 for
shipping) as of this writing. The author can be contacted at: 80/20
Software, P.O. Box 2952, Raleigh, NC 27602-2952. KALEIDOS and HKAL are
written in ASIC 5.00 .
KALEIDOS.EXE and HKAL.EXE use a third-party library called ASILIB by Douglas
Herr. I'm suddenly able to do some really spiffy things I couldn't do in ASIC
or any other language, and I'm quite pleased. I'm a registered user and quite
happy about it. His address: Douglas Herr, P.O. Box 207, Sacramento Ca 95812
USA. IBRARY, another third-party library for ASIC, is also used in
KALEIDOS.EXE . I've lost the address, but what support and upgrades there are
are to be found on the Internet anyway. The publisher is Charon Software.
SKAL.EXE uses a third-party library called SVGAQB by Zephyr Software. This
allows access to 256-color modes in 320 X 200, 640 X 400, 640 X 480, 800 X
600, 1024 X 768, and 1280 X 1024. They can be contacted at: Zephyr Software,
P.O. Box 7704, Austin, Texas 78713-7704.
SKAL.EXE is written in QuickBASIC 4.50 by Microsoft. This is an "obsolete"
programming language that a lot of people (including myself) still use. It
can still be obtained, but only at outrageous prices (they seem to be trying
to discourage its use). Still and all, it was the best option for this
program, and is excellent for a lot of DOS programming. SKAL.EXE runs under
Windows 3.1, so it can still be used on systems that aren't quite as old as
most of mine. I don't know if it'll run under Windows 95 yet, but I bet it
will.
One of the video detection routines was taken from "BASIC Techniques and
Utilities", by Ethan Winer. There's lots of fantastic code in here, and I've
yet to scratch the surface. Simply put, this book will make you a better
programmer if you use one of the Microsoft BASIC compilers. There should be
useful information in here for PowerBASIC users as well.
System Notes
Multiscope was written on a Sirex, with an 80386SX processor running at 16MHz
and an 80387 math coprocessor. There's 640K base memory, and 3200K extended.
The system has one 5.25" 1.2M drive, one 5.25" 360K drive, and a 40M hard
drive. Operating system is Microsoft MS-DOS 5.00 .
Parts of Multiscope were prototyped on the following systems:
A Tandy 102. I don't know what processor that one has. Video is a monochrome
LCD screen with 240 X 64 X 2 resolution. There is a Realistic CCR-81 cassette
drive installed. The system has 64K RAM. The programming language used was
Tandy 100 BASIC. This system is no longer set up, but is available for
prototyping if need warrants. Source code in Tandy 100 BASIC has been saved
on tape and on disk (in IBM format) for future use.
A Commodore VIC20, with a 6502 processor. There was a 16K RAM cartridge
installed, for a total of 19½K RAM, a VIC-1541 disk drive, and a black and
white television for video output. This system has been given away and is no
longer available for prototyping. Source code, in CBM BASIC 2, has been saved
on disk and on paper for future use.
A modified IBM PC, with a 4.77 MHz 8088 processor. Video is a Hercules
Graphics Card (or compatible; I haven't checked) and an Amdek amber-screen
monochrome monitor. There is one 5.25" 360K floppy drive installed, and a 20M
hard drive. The system has 640K RAM. Operating system is IBM DOS 4.00 .
This system is not currently available for prototyping, but may be returned in
the future. Source code in numerous languages has been saved on disk for
future use.
---------
The version of Multiscope written for the Commodore 64 was written on a
Commodore 64, which uses a 6510 processor. Video is a color TV; resolution
capability is: 40 X 25 X 16 colors in text mode, and 160 X 200 X 4 and 320 X
200 X 2 in bit-mapped graphics mode. There is one VIC-1541 disk drive
installed. The system has 64K RAM. The programming language used was
Commodore 64 BASIC 2. This system has been given away and is no longer
available for prototyping. I have other C64's, but I don't think any of them
work. Source code, in Commodore 64 BASIC 2, has been saved on disk for future
use.
The kaleidoscope for the Color Computer 2 was written on a Color Computer 2
with a Color TV and a CCR-83 cassette drive. The processor is a 6809E.
There was a Tandy DMP-133 attached. RAM was 16K. Programming language was
Color BASIC 1.3 . This system has been given away and is no longer available
for prototyping. Source code, in Color BASIC 1.3, has been saved on tape and
on disk (in IBM format) for future use.
System Requirements
To run KAL008.BA, you'll need a Tandy 102. You'll have to display it on an
IBM-compatible system or print it, and then type it into the Tandy 102. It
should run on any Tandy 102, to the best of my knowledge.
To run C64KA008.BAS, you'll need a Commodore 64. You'll have to display the
program on an IBM-compatible system's screen or print it, and then type it
into the Commodore 64. As far as I know, it'll run on any Commodore 64.
NOTE: This file is currently on the supplementary disk.
The kaleidoscope for the Color Computer 2 requires a Color Computer. I don't
know why it wouldn't run on any Color Computer, but you may need a Color
Computer 2 as a minimum. You'll need to use an IBM-compatible computer to
print or display it, and then type it in manually. You'll need at least a TV
to display the program and, obviously, color is recommended.
To run KALEIDOS.EXE, you'll need an IBM or compatible system with a screen
capable of displaying 80 columns of text. Of course, the screen display for
monochrome systems is not nearly as spiffy as that for computers with graphics
cards, so you'll be more likely to experience ecstasy if you have some sort of
graphics card in your system. You'll probably get by with 128K of RAM
(possibly less).
To run SKAL.EXE, you'll need an IBM or compatible system with an 80386SX or
higher CPU, and probably about 128K RAM. You'll need an SVGA card with at
least 256K video memory; this will let you access the 320 X 200 and 640 X 400
modes. You'll need 512K video RAM for the 640 X 480 and 800 X 600 modes; 1M
for the 1024 X 768 mode; and 2M for the 1280 X 1024 mode. In addition, you'll
need a VGA monitor capable of supporting one or more of the modes listed here.
As far as I can tell, any VGA monitor will support at least 640 X 480, with
256 colors.
The Warrantee
There isn't any. Don't be alarmed; Microsoft has the same lack of warrantee,
they just use more and bigger words to say the same thing. That said, please
bear in mind that I'm writing this program for myself, not just for
distribution. I intend to use the program as much as its capabilities permit.
As a result, it isn't very likely that I'll be slipshod about fixing bugs; I
want the programs I use to be as error-free as possible. Since I use the
program as much as possible, it's also likely that I'll spot any problems very
quickly. Personally, I think that's a better warrantee than any promises I
could make.
System Tests
Versions 0.01 through 2.07 have been tested on the system described in System
Notes, preceding. Tests have also been conducted on every blessed computer I
could get my hands on, and the systems are just too numerous to be listed.
Suffice to say that I intend to continue testing Multiscope whenever I get
hold of a new system to play with, so the list will keep growing.
No problems have been detected, except as noted in the section Problems.
Running Multiscope
To run KAL008.BA, you'll need to type it into your Tandy 102 after displaying
it on an IBM-compatible computer's screen or printing it. If you have a
cassette drive, you should save it on tape. If you don't have one, you can
save it into RAM. Once it's in memory, type RUN. Pressing any key will
return you to the BASIC interpreter. The kaleidoscope is in black and white
only, and sometimes runs quite slowly (depending on the internal clock that's
helping assure a "truly" random set of numbers for the lines).
To run C64KA009.BAS, you'll need to type it into your Commodore 64 after
displaying it on an IBM-compatible computer's screen or printing it. If you
have a cassette drive or disk drive, you should save the program before
running it. Once it's in memory, type RUN. Pressing any key will clear the
screen and return you to the BASIC interpreter. While the kaleidoscope is in
color, it uses text mode to create character-sized rectangles. Because the
rectangles are so large, the resolution suffers and the effect is
disappointing. NOTE: This file is currently on the supplementary disk.
To run the kaleidoscope for the Color Computer 2, you'll need to display or
print it using IBM-compatible equipment, and then type it in manually. After
it's been entered and saved, type RUN.
KALEIDOS.EXE
Change to the directory containing KALEIDOS.EXE, or place KALEIDOS.EXE in your
path (in which case you won't need to change directories or drives in order to
run it). You press a key to return to DOS.
Auto-Detection
If you just type KALEIDOS, with no command line options, Multiscope will
first attempt to detect whether the card is monochrome or color. If it's
monochrome, Multiscope will check for a Hercules or compatible card. If it
finds one, the screen display will start. Don't be alarmed if nothing happens
on your screen for a while; there are only two colors (foreground and black),
and Multiscope may be drawing black lines on a black background for a little
while. If you're anything like me, you'll find this less than visually
stimulating. If you're patient, though, some pretty spiffy designs will show
up sooner or later, and probably sooner. If no Hercules or compatible is
found, the MDA display (no graphics, but not bad in my opinion) will start.
If Kaleidscope decides you have a color card (which has nothing to do with
whether or not your display screen can produce colors, incidentally), it'll
check for EGA/VGA. If it decides you have one or another, it'll start by
trying to enter 640 X 480 X 16 resolution. If that doesn't work, it'll go to
640 X 350 X 16. If that doesn't work, or if EGA/VGA was not detected, it'll
go to the next step, which is to attempt CGA mode 320 X 200 X 4. If nothing
works, you'll get the MDA display described earlier.
Command Line Options
If you don't like the results of the autodetection, you can force Multiscope
into any graphics mode your system supports. This requires that you know what
your system can and can't do; trying to force it into modes it can't handle
can damage your video card in some cases.
Please note that, while command line options are listed in upper case, either
upper or lower case, or any combination of the two, will work just fine.
M - Monochrome Display Adapter (80 X 25 blocks)
C1 - Color Graphics Adapter (CGA); 320 X 200 X 4
C2 - Color Graphics Adapter (CGA); 640 X 200 X 2
H - Hercules or Compatible Graphics Adapter (HGC); 720 X 348 X 2
A - AT&T 6300 Graphics Adapter (640 X 400 X 2)
E1 - Enhanced Graphics Adapter (EGA); 320 X 200 X 16
E2 - Enhanced Graphics Adapter (EGA); 640 X 200 X 16
E3 - Enhanced Graphics Adapter (EGA); 640 X 350 X 4 (see EGA mode description)
E4 - Enhanced Graphics Adapter (EGA); 640 X 350 X 16
V1 - VGA or MCGA; 640 X 480 X 2
V2 - Video Gate Array (VGA); 640 X 480 X 16
V3 - VGA or MCGA; 320 X 200 X 256
V4 - Video Gate Array (VGA); 320 X 240 X 256
V5 - Video Gate Array (VGA); 320 X 400 X 256
V6 - Video Gate Array (VGA); 360 X 480 X 256
VS1 - VESA SVGA; 800 X 600 X 16
S - non-VESA SVGA; 640 X 400 X 256
/A - Art show
/S - PCX file display
/SS - PCX file display slideshow
REPORT- Tells you about the graphics capabilities of your computer
Monochrome Display Adapter (MDA) Mode
If you type KALEIDOS M, you should be switched to a monochrome display of
blocks in varying shades of foreground color. While this isn't the most
exciting display available, it's not bad considering the fact that MDA isn't
capable of graphics. It's the only MDA screen display I've ever seen, and was
written because I had that kind of system for a while.
Color Graphics Adapter (CGA)
If you have a CGA card, typing KALEIDOS C1 will give you a line display in 320
X 200 resolution and 4 colors. These are the default colors for CGA; kind of
a baby blue ("cyan"), a pinkish purple ("magenta"), black, and white. Since
there are more colors, it's a bit less likely that the screen will get too
muddy. However, it does happen.
Typing KALEIDOS C1A will replace the purplish pink (or is that pinkish purple?)
with red. I don't care for the change myself, but there are people in the
world who think red is a great color and I thought they should have the
option.
Typing KALEIDOS C2 will produce a line display in 640 X 200 resolution with 2
colors. You might find you like the higher resolution better than the colors.
If so, this is the option that'll suit you best. Personally, I prefer the
lower resolution with the colors, but that might be because I use a lot of
monochrome monitors and the color is a nice change. You'll find the same
problem with the screen getting "muddy" that occurs with a Hercules or
compatible. It won't last long, though, and the patterns are generally pretty
decent.
Hercules Graphics Card and Compatible (HGC) Mode
If you have a Hercules or compatible graphics card in your system, and you
type KALEIDOS H, you'll see a line display that I think is pretty nifty and is
the best available (as far as I know) for this adapter. Of course, since you
only get two "colors" (foreground and black), you may find it takes a while
before you see anything. That's because KALEIDOS is drawing black lines on a
black background. If you're anything at all like me, you're likely to find
this distinctly uninteresting. The same problem will happen when too much of
any one "color" is on the screen. For instance, you may get amber lines being
drawn over amber lines which have been drawn over amber lines. In this case,
the problem isn't that you have nothing on the screen, but that you have too
much. In either case, the "pattern" leaves a great deal to be desired.
Bluntly put, there isn't a single blessed thing I can do about it. The lines
are being drawn randomly, and you and I will just have to wait until they form
a better pattern. This version of the kaleidoscope is fairly quick, though,
so it shouldn't take long before you get some interesting stuff to watch.
AT&T 6300 Mode
If you have an AT&T 6300, typing KALEIDOS A will give you a line display with
a resolution of 640 X 400, with 2 colors. At least I think it will; I don't
have an AT&T 6300, so I can't guarantee anything. All I can really tell you
at this point is that it compiled okay and that it won't run on a VGA monitor
(in fact, it hangs the system in good shape). I really shouldn't keep trying
to make this resolution run on other systems, but I can't resist. Anyway, if
I find out anything else, I'll let you know.
Enhanced Graphics Adapter (EGA)
Typing KALEIDOS E1 results in a line display with a resolution of 320 X 200,
with 16 colors.
KALEIDOS E2 yields a resolution of 640 X 200, with 16 colors.
KALEIDOS E3 is good if you have a monochrome EGA monitor in your system, or if
you don't like colors, I suppose. Technically, the monochrome EGA gives you
four "colors", but at least one of those is a nasty blinking thing that gives
most people a headache. So, I tweaked it to show only foreground and black.
Resolution is 640 X 350.
KALEIDOS E4 offers 640 X 350 resolution, with 16 colors.
Video Gate Array (VGA), Multi-Color Graphics Array (MCGA)
Typing V1 gets you a 640 X 480 resolution line display, in foreground color
and black. This one works for both VGA and MCGA cards.
Typing V2 results in a 640 X 480 resolution line display, and 16 colors. VGA
only.
KALEIDOS V3 displays the lines at 320 X 200 resolution, in 256 colors. Works
with both VGA and MCGA.
KALEIDOS V4 will display lines at 320 X 240 resolution, in 256 colors.
Requires VGA.
KALEIDOS V5 gives you a line display at 320 X 400 resolution in 256 colors.
VGA only.
If you type KALEIDOS V6, you'll see a line display at 360 X 480 resolution in
256 colors. VGA only.
VESA SVGA
If you have a VESA SVGA card with enough memory to generate this mode, and a
monitor capable of displaying it, typing KALEIDOS SV1 produces a line display
in 800 X 600 resolution, with 16 colors.
Non-VESA SVGA
KALEIDOS S gets you a 640 X 400 resolution line display, in 256 colors.
Trying to run it from a shell hung my machine, but after I rebooted it worked
fine.
The only machine this worked on was an 80386SX-16. I tried it on a 286 with
an SVGA card, but it just hung the monster. Hopefully, this option works on
other systems than the one in my apartment, but I can't guarantee that yet.
Keypresses During Operation
While the kaleidoscope is running, you can press the F1 key to learn that
there are no help screens available at this time. That'll change in the
future, of course. I mainly wanted to get the routines in place, and I'll put
the actual help info in later.
Graphics Information
Typing KALEIDOS REPORT will get you a screen that tells you about the graphics
modes your computer supports. More accurately, it'll tell you about the modes
your system supports that KALEIDOS can detect; SVGA cards, for example, are
not detected at this time. If you have the manuals that came with your
computer, you should double-check those to see if there's something KALEIDOS
might have missed. If so, you'll have to access those modes with one of the
command line options listed above, if possible. There are a lot of modes out
there that are not supported by KALEIDOS; the Amstrad's 640 X 200 X 16 mode is
one example. The CPU is detected and reported with this option. If a 386 or
better is detected, try running SKAL for SVGA detection.
.PCX File Display
KALEIDOS.EXE can be used to display .PCX files. The syntax is KALEIDOS /S
filename.ext, where filename.ext is the name of the .PCX file you want to
view. It's intended for systems which lack SVGA and/or a 386 processor. It
supports the standard IBM graphics formats, with the exception of 320 X 200 X
4; the graphics get elongated and clipped for some reason.
You can also view slideshows. First, make a list of the .PCX files you wnat
to look at. Then type KALEIDOS /SS filename.ext, where filename.ext is the
name of your list. You can probably specify a path for the file list, and the
file list can probably contain pathnames, but I haven't checked that out yet.
If it does work like that, you'd have to specify the pathname for each file,
een if it's the same path, like this:
C:\PCX\FILE1.PCX
C:\PCX\FILE2.PCX
and so on.
If KALEIDOS can't find a file at any time during the slideshow, it'll give you
the message "Can't display file" and dump you back to DOS. I might fix that
at some point in the future, but for now I'm letting it lie. You'll get the
same result if you try to display any graphics the system can't support. 32-
color files probably aren't going to display, though I plan to work on that at
some point in the future. The same holds true for 128-color files. Graphics
systems that can only support 2-colors will not display any files that have
more colors than that properly, and so on up the line. So a Hercules system
won't properly display a 4 or 16-color file, and an EGA system won't properly
display a 256-color file. This may not be universally true, since I haven't
had time to fully test the system; you should feel free to experiment. Later
on, I'll be doing more testing in an effort to display more types of files on
more systems.
If the file has the correct number of colors for your system, but is too big
for the screen, it'll probably be clipped. I hope to include some scrolling
and panning capabilities in the future, but for now you'll just see part of
the graphic.
Art Show
If you type KALEIDOS /A, KALEIDOS will try to open the file ARTSHOW.SCR, and
then attempt to carry out the commands. The art show can be interrupted by a
keypress. You'll be returned to DOS fairly quickly if you have the
kaleidoscope running at the time. If you have a PCX file displaying, it's set
up to display for a specific amount of time, and it won't return you to DOS
until that time is up.
You can also specify the script file name of your choice, and KALEIDOS will
try to open that file instead. That way, you can have a variety of script
files in the same directory or on the same disk, and simply specify which one
you want to use.
If KALIEDOS can't find the script file you specify (or ARTSHOW.SCR if no
filename has been typed), you'll be informed of this fact and returned to DOS.
Script Commands
While commands are shown in upper case, any combination of upper and lower
case in the script file itself is fine. Sections of commands shown in square
brackets ([]) are optional.
---------
DISPLAY ANSI FILE filename.ext[, WAIT x SECONDS] - This command displays the
ANSI file of your choice, optionally waiting a specified number of seconds.
If no number is specified, the graphic is displayed for 60 seconds. There'll
be a delay before anything is printed on the screen, because the file is
loaded entirely into memory first.
If specifying a delay period, you must use the comma with no space between it
and the DISPLAY ANSI FILE command. There must be one space after the comma,
and the keyword SECONDS must be included. The filename.ext is the name of the
ANSI file you want to display.
Not all ANSI files can be displayed; I set this up to display a file that
pleases me, and left out a lot of options I could have included. I can
change the routine so it shows more ANSI files if enough interest is shown by
contributors.
Examples:
1- DISPLAY ANSI FILE SCLOGO.ANS
This will display the file SCLOGO.ANS on your screen for 60 seconds.
2- DISPLAY ANSI FILE SCLOGO.ANS, WAIT 15 SECONDS
This will display SCLOGO.ANS for 15 seconds.
DISPLAY PCX FILE filename.ext[, WAIT x SECONDS] - This displays the PCX file
of your choice, optionally waiting a specified number of seconds. If no
number is specified, the graphic is displayed for 60 seconds.
If specifying a delay period, you must use the comma with no space between it
and the DISPLAY PCX FILE command. There must be one space after the comma,
and the keyword SECONDS must be included. The reason SECONDS must be included
is that I may decide to offer an option to let people specify numbers of
minutes, or even hours if someone is silly enough to want it and sends me
money. The filename.ext, of course, is the name of the PCX file you want to
display.
Examples:
1- DISPLAY PCX FILE TEST.PCX
This will display the file TEST.PCX on your screen, and hold it there for 60
seconds.
2- DISPLAY PCX FILE TEST.PCX, WAIT 15 SECONDS
This will display TEST.PCX for 15 seconds.
DISPLAY TEXT FILE[ filename.ext, WAIT x SECONDS] - As you might have guessed,
this command displays a text file. While you might think this is a waste of
time, you can actually get some pretty nifty results with the IBM line-drawing
characters, and you can create some really spiffy art shows even without a
graphics adapter installed. If y9u don't specify a filename, it'll look for a
file with the name ARTSHOW.TXT . It'll remain on your screen for 60 seconds
if you don't specify a duration using the WAIT option. The syntax with that
option is DISPLAY TEXT FILE filename.ext, WAIT x SECONDS, where filename.ext
is the name of the text file you want to display and X is the number of
seconds you want it to stay there. Because the slideshow is automatic, your
text file should fit on the screen; there are no PgUp or PgDn options at this
time.
Examples:
1 - DISPLAY TEXT FILE
This will display the file ARTSHOW.TXT for 60 seconds, or give you an error
message if it can't find the file.
2 - DISPLAY TEXT FILE TEST.TXT
Same as the preceding, except that KALEIDOS will look for the file TEST.TXT .
DISPLAY TEXT FILE TEST.TXT, WAIT 10 SECONDS
Same as the preceding, except that your file will be displayed for 10 seconds,
assuming it can be found.
LOOP - Returns you to the beginning of the file, and lets you start over
again. This is good for continuously running artshows. If you want to run
your show through just once and then quit to DOS, just leave out this command.
Example: LOOP
SHOW SCREEN DISPLAY - This command will show the kaleidoscope screen display
on your screen for about two minutes, or until you press a key.
Example: SHOW SCREEN DISPLAY
"Laser Light Show" Option
Typing KALEIDOS /L will give you slightly different type of display; it's
faster, and at least one person I knew with a Hercules display likes it
better. It's essentially the kaleidoscope without the symmetry, and you may
have heard of it as "Laser", "Web", "Walking Sticks", or the like. It's been
around about as long as graphics has, so you're bound to have seen some
version of it.
Auto-detection only is available at this time, and pressing a key will return
you to the DOS command-line.
HKAL.EXE
Because I have older systems with small drives (as of this writing, I'm using
a 40M hard drive), I'm always thinking of ways to make more room. In this
case, I thought that a kaleidoscope that was geared to only one mode would
take up less space on the hard drive. I was right, although it didn't help me
any since I keep all my distribution files on the hard disk; it actually made
less room. It might help you out, though, if you have a Hercules graphics
card or compatible. That's all this is; a kaleidoscope for Hercules systems.
It takes no command-line input and does no video detection except to check for
a Hercules card. The result is that the executable takes up about half the
room it would otherwise use.
SKAL.EXE
This is a kaleidoscope for systems with SVGA graphics capabilities. For
various reasons, it wasn't possible to include these routines in KALEIDOS.
You'll need an 80386SX or better to use this program; even if you have SVGA
capabilities, it won't work on a 286.
This program is almost entirely command line driven, because it's fairly
common for folks to have a graphics card that can generate a higher resolution
than the screen can display. I'm thinking mostly of "home-grown" systems such
as mine, but I've also seen some new systems sold like that. It doesn't
happen much now, but I'll bet there are some 386 and 486 systems out there
that have that kind of setup. Because SKAL is unable to detect the
resolutions a screen can display, autodetection is not a good idea. Trying to
display resolutions that your card or screen can't handle can result in
hardware damage, so we're doing it the hard way for the time being.
0 - 320 X 200 X 256 line display (straight VGA, no SVGA required <I think>)
0A - Same as option 0, but spiffier patterns
1 - 640 X 400 X 256 line display (not supported by all cards)
1A - Same as option 1, but spiffier patterns
1P - Screen capture in 640 X 400 resolution
1S - .PCX file display in 640 X 400
2 - 640 X 480 X 256 line display
2A - Same as option 2, but spiffier patterns
2P - Screen captures in 640 X 480 resolution
2S - .PCX file display in 640 X 480
3 - 800 X 600 X 256 line display
3A - Same as option 3, but spiffier patterns
3P - Screen capture in 800 X 600 resolution
3S - .PCX file display in 800 X 600
4 - 1024 X 768 X 256 line display (untested)
4A - Same as option 4, but spiffier patterns
4P - Screen capture in 1024 X 768 resolution
4S - .PCX file display in 1024 X 768
5 - 1280 X 1024 X 256 line display (untested)
5A - Same as option 5, but spiffier patterns
5P - Screen capture in 1280 X 1024 resolution
5S - .PCX file display in 1280 X 1024
SS - .PCX file display slide show
REPORT - Reports on your system.
Not all SVGA cards can support the 640 X 400 X 256 resolution; because there
is no autodetection in SKAL, it's important that you know what your system can
do.
To run SKAL, type SKAL [option] . For instance, to see the kaleidoscope in
640 X 480 X 256 mode, and using the spiffier patterns, type: SKAL 2A .
About the "A" options (1A, 2A, etc.): The Zephyr library has an option for a
different type of line. I tried it, and found the patterns were much
spiffier. The reason it's a separate option instead of the main one is that
the symmetry is not as good. In other words, option 1 has better symmetry,
but option 1A has better patterns. So, you get to choose which one you like
best. Actually, the patterns are so much better that I may take out the
option with better symmetry altogether at some point. I'd appreciate knowing
your opinion on whether or not I should keep the "better symmetry" option.
I've recently included the "0" option. I had neglected it earlier, but I
finally noticed that the documentation for the library I'm using says this
mode doesn't need an SVGA card. Because the whole idea of this business is to
support older hardware, I've decided to include it. That's why it's option 0
instead of option 1; I didn't feel like changing the whole option list around
through the entire source file, so I cheated.
Theoretically, the "0" option will allow anyone with a 386 or better and VGA
to use SKAL. However, I haven't tested it on anything but a 386SX with an
SVGA card, so I don't know. It's entirely possible it'll fail without SVGA,
since untested features are frequently not as advertised. I'd appreciate
knowing how things work out if you have a 386 or better with plain vanilla
VGA.
Screen Capture
Typing one of the numeric options with a "P" runs the screen capture option,
for instance: SKAL 2P . A pattern will be generated, and then the screen will
pause and wait for you to press a key. If you press the Esc key, you'll be
returned to DOS. If you press the C or Enter key, the pattern on your screen
will be written to a .PCX file. The first file will be C1.PCX, the next will
be C2.PCX, and so on. Any other key will just generate another pattern.
This option uses the anti-aliased lines ("A" option) to generate spiffier
patterns. The problem is that, while the symmetry problem isn't such a big
deal when the patterns are constantly changing, a still picture is an entirely
different situation. So you'll have to keep cycling through until you get an
interesting pattern with good symmetry. This will happen, and I've generated
some pretty spiffy screens with it. Some of them I might have been inclined
to save, but I didn't want to use the disk space right now.
The advantage here is that you can get a good pattern, capture it, and import
it into a graphics editor. At this point, you can insert your business logo,
a holiday greeting, a "No Parking" notice, whatever works for you.
You should be aware that these files take up quite a bit of disk space, around
half a meg apiece in 640 X 480 X 256 mode. You get larger files in the higher
resolutions. So, if disk space is a problem, you'll want to avoid getting too
carried away with this option.
Unfortunately, screen capture is currently not available in the 320 X 200
mode. If and when I can make it available, I will.
.PCX File Display
This option allows you to display .PCX files on your screen. It's intended
for viewing screen captures made previously with SKAL's P option, but seems to
view any 256-color .PCX file. While I haven't seen many 256-color .PCX's, I
have been able to convert 256-color .GIF files using various shareware
utilities currently on the market. My testing indicates that any 256-color
.PCX will display. Your screen should be in the same resolution as the file;
if the resolution is higher than the file's, it won't fill the screen, and if
it's lower the file will be clipped. It looks like the Zephyr's library loads
the entire file into memory even when it doesn't fit the screen (the disk
light keeps going after the screen is filled), so panning should be a
possibility at some point if I can figure out how to do it. For now, though,
you'll have to control things yourself. To use this feature, type
SKAL nS filename.ext
where n is the mode you want (1 through 5) and filename.ext is the file you
want to view. For example, SKAL 2S C1.PCX would view the file C1.PCX in 640 X
480 X 256 mode.
Unfortunately, this option is not currently available in 320 X 200 mode, and
it won't view any .PCX files with less than 256 colors. There may be a way to
make that option available in the future, but it'll probably be a while before
I get to it.
.PCX Slideshow
This option uses a file list you create in straight text format. Syntax is:
SKAL SS filename.ext
where filename.ext is the name of the text file containing the filenames SKAL
will display. The first line in the text file has to be a mode number. Here's
a sample of what your file might look like:
2
C1.PCX
AUG.PCX
TEST.PCX
ETC.PCX
If you wanted to display the files listed in PCXFILES.LST in 640 X 480 X 256
resolution, your command line would be SKAL SS PCXFILES.LST
SKAL will cycle through these filenames until you press a key.
System Information
The REPORT option gives you information about your CPU, graphics capabilities,
your mouse if any, the presence of one or two joysticks, and XMS (extended
memory) if any. Much of this information isn't necessary for running SKAL,
but the library I'm using has it as an option. Since I always like to know as
much about the hardware in my systems as possible, I included it. Hopefully,
you'll find it useful as well.
The /A Option
This is the very beginning of a rudimentary "art show" option for SKAL. All
it does is switch between the kaleidoscope and a text file at five-minute
intervals. The text file must be named ADVERTIS.TXT, must be in the same
directory you're in at the moment, and should all fit on one screen. Syntax
for this option is SKAL /Amode, where mode is a number corresponding to the
following resolutions:
0 - 320 X 200 X 256
1 - 640 X 400 X 256
2 - 640 X 480 X 256
3 - 800 X 600 X 256
4 - 1024 X 768 X 256
5 - 1280 X 1024 X 256
Pressing a key returns you to DOS.
Problems
Because of the way KALEIDOS clears the screen and returns it, you might have
trouble with TSR's that place your screen in 43/50 line mode or whatnot. Then
again, you might not, since I haven't tested it. If you run into any trouble,
I'd appreciate hearing about it.
While the resolution capabilities of the various video cards can be detected,
the capabilities of the monitors can't, at least for now. In other words, if
your monitor can't display one of the higher resolutions your card can
generate, there's no way for SKAL to detect it at this time. Trying to
display resolutions your system cannot support can result in damage to your
video card, monitor, or both. Please rely on your computer's manuals for
checking on SVGA capabilities. Any resolutions detected under 640 X 400 X 256
should be safe. If you have a VGA monitor, any resolutions detected of 640 X
480 X 256 should be safe, but I can't guarantee that. The "Mode X"
resolutions (320 X 240 X 256, 320 X 400 X 256, and 360 X 480 X 256) have
worked fine on every VGA system I've tested them with, but I certainly can't
test them all. I don't know any way to check them without trying it, but the
modes aren't all that hot anyhow, so you could probably skip them without
missing a thing.
You should be aware that none of these programs are intended to be memory-
resident. This has to do with a highly involved and rather technical
obstacle. Well, okay, the fact is I don't know how to write memory-resident
programs.
Comments, Criticisms, Questions, Etc.
I'm always interested in hearing what you think of my programs. Please feel
free to send any correspondence to the address at the beginning of this
document. When writing, please include the version number of the program
you're writing about, and the system it was designed for (if it was designed
for a specific system). That makes it easier for me to see if maybe your
problem has already been fixed.
Also Available From StarCom
Due to insufficient space on the distribution disk, some files are not
included and are offered separately. These include:
C64KA009.BAS- This is the Commodore 64 screen display. It's on the disk in
IBM format; you'll have to display it or print it on an IBM or compatible, and
then type it into the C64 manually. It's not a great display, but it's the
only one for the Commodore 64 I know of. It's in Commodore 64 BASIC V. 2, so
you can alter it to suit your needs.
HKAL.ASI- The ASIC source code for HKAL.EXE . This might be of use if you're
trying to program Hercules graphics in ASIC, and are interested in seeing how
ASILIB sub calls work with your source code.
KAL008.BA- The screen display for the Tandy 102. If you're interested in
programming graphics on the Tandy 102, you might find this useful. Also, it's
the only screen display program for that computer I know of, and isn't bad
looking. The original kaleidoscope routine was prototyped on that system, as
a matter of fact. When I got something I thought was pretty spiffy-looking, I
ported it over to the IBM-compatible systems. I used the interpreter included
with the 102, so you can modify the program to suit yourself.
KALCOCO2.BAS- The screen display for the Color Computer 2. This is written in
the Color BASIC 1.3 interpreter included with that system, so you can modify
it as you like. You'll probably want to modify it, since it isn't very
impressive. It's the only screen display program I know of for that machine,
though. Actually, I didn't even write this one; if I remember correctly, I
got it out of the BASIC manual that came with the CoCo 2.
KALEIDOS.ASI- The ASIC 5.00 source code for KALEIDOS.EXE . This probably has
the same attraction as HKAL.ASI, with the exception that it encompasses more
of ASILIB's features.
If you'd like a copy of the supplementary disk, please send your name,
address, and $11.13 .
When I was testing the non-SVGA .PCX file display program, I discovered I
didn't have many .PCX files that were 2-color (black-and-white). So, I
converted some from a few .GIF and .IMG files I had kicking about the place.
I also discovered that some of the converted .PCX files didn't fit the screen,
so I scaled them to fit.
Also, when I was testing the SVGA .PCX file display program, I discovered I
didn't have any 256-color .PCX files handy. So, I converted some from .GIF
files.
It's occurred to me that some folks may be in the same situation, and might
not have the software for converting and scaling and what-not. So, I'm
offering that service. For $11.13 per disk, I'll convert the graphic of your
choice, or convert some of my graphics for you. Disk formats currently
available are 360K, 720K, 1.2M, and 1.4M. 160K and 180K formats may also be
available, but don't count on it. Be aware that available disk formats may
change as my system configurations change; my prototype computer is available
for sale, as an example. If I sell it, the 1.2M format won't be available.
The MaxiDisk extended formats can also be made available if you like, but I've
had trouble with "magnetic drift" (in essence, the files get screwed up) and I
don't recommend that format.
If you'd like to have me convert some of my graphics files for you, you should
specify 1) disk format; 2) how many disks you want; and 3) the topic. Topics
can range from animals to swimsuit graphics. In fact, I have or can get
graphics files on almost any conceivable topic, and convert them into a huge
variety of formats.
At this time, I will not convert any pornographic files. That's because I
don't know where I stand legally, and I don't intend to hire a lawyer for a
program this cheap. If, at some point, there is sufficient interest shown, I
may make that service available as well.
If this service interests you, send $11.13, a disk with the graphics you want
converted (or a note telling me the topics you want), your name and address,
and a short note telling me what disk format/graphics formats you want.
For the same price, you can get some ASCII files which are pictures made with
the IBM line-drawing characters. I don't have a lot of them, but I do have a
few and I can probably get more. Frankly, I'm often amazed at what you can do
with a lot of skill and patience, and I plan on including some "ASCII
graphics" in an art show I'm putting together. If you'd like a disk of these
files, send $11.13, your name and address, and a note regarding your preferred
disk size/format.
About StarCom
StarCom is a business founded in 1987 to promote and implement recycling in
such a way as to make it profitable. The business has been through many
changes of name and focus, but is currently working on programming second-hand
and obsolete computers, with an eye toward keeping or making them profitable
to use. The idea is to make it more profitable to repair and upgrade the
system than to throw it out.
I have about seven years experience with computers, and have programmed in
several versions of BASIC, including but not limited to: ApBASIC, ASIC,
BASICA, Basic BASIC 1.52, CBM BASIC 2, Color BASIC 1.3, Commodore 64 BASIC 2,
Extended Color BASIC, GW-BASIC, Locomotive BASIC2 1.16, PowerBASIC 2.10H,
QBASIC, QuickBASIC 4.5, Tandy 100 BASIC, and TSRBASIC 2.0 . I also have some
limited experience with Turbo Pascal 4.0 . I have even more limited
experience with C, but haven't written anything I thought was worth anything
yet.